home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / lang / c++-part2 / 12038 < prev    next >
Encoding:
Internet Message Format  |  1996-08-05  |  6.4 KB

  1. Path: venus.roc.csci.csc.com!pccom9-156
  2. From: tottinge@csci.csc.com (Tim Ottinger)
  3. Newsgroups: comp.lang.c++,comp.lang.eiffel,comp.lang.c,comp.object,comp.software-eng
  4. Subject: Re: Beware of "C" Hackers -- A rebuttal to Bertrand Meyer
  5. Date: Sat, 16 Mar 96 18:00:11 GMT
  6. Organization: CSC CIS - TRIS DIVISION
  7. Message-ID: <4if2ri$ao6@venus.roc.csci.csc.com>
  8. References: <1995Jul3.034108.4193@rcmcon.com> <RMARTIN.96Mar13110714@rcm.oma.com> <4i7lup$50t@news1.mnsinc.com> <bksDo8KDp.260@netcom.com> <4i8gkrINNn8o@keats.ugrad.cs.ubc.ca>
  9. NNTP-Posting-Host: pccom9-156.csci.csc.com
  10. X-Newsreader: News Xpress Version 1.0 Beta #3
  11.  
  12. ETHICS/MORALITY/PURPOSE stuff -- You can skip this
  13. ---------------------------------------------------------------------------
  14. I'd been mostly quiet, but I think that we've hit the wrong nail squarely on 
  15. the head in this discussion.  Unfortunately, someone very well respected (by 
  16. me as well) felt the need to join the language wars, and that lent a bit of 
  17. respectibility to it that is inappropriate.
  18.  
  19. I'm learning (due to a good friend) to stop bashing 4GLs.  Weall can learn to 
  20. use the grammars we like, and stop bashing the ones which are more popular.  
  21. After all, I've not yet seen any PL/1-bashing articles here, nor Prolog haters 
  22. uniting.  Only bashing of the most popular languages.
  23.  
  24. Hey, the most popular (languages, software, books, movies) are seldom the 
  25. best. They're just the most popular.  They make bigger box office, and last 
  26. longer, and affect the future more than the less popular ones.
  27.  
  28. It don't make them right, just makes them important.
  29. ---------------------------------------------------------------------------
  30.  
  31. I've got three points (rather than just rambling on) which I think summarize 
  32. what's really going on here.
  33.  
  34.  
  35. **************************************************************************
  36.               Underdesigned code rots quickly. 
  37.  
  38. Writing underdesigned code is what most of this group calls "hacking code", 
  39. and it's what I call "hacking code" also.  It's part of an expediency ethic 
  40. that a lot of employers not only have, but insist upon.
  41.  
  42. Underdesigned code is hard to maintain (no matter how many comments you put in 
  43. it) and turns to mush over the first, oh, five to ten releases.  Then you toss 
  44. it and start over.  A lot of money is wasted, but you still learn from it and 
  45. grow wiser for next time.
  46.  
  47. WRT C:
  48.  
  49. An awful lot of code is written in C, and so a lot of awful code is written in 
  50. C.  Because C is very popular, there's a lot of quackery.  People with a 
  51. one-month night-school familiarity with it advertise and get jobs as C 
  52. experts.  And more bad code results.  
  53.  
  54. C is just a popular syntax.  It suffers more from popularity than syntax. Face 
  55. it, anyone can learn any language if they care to.  It's not secret or 
  56. special.  And you can do things in COBOL that are amazing (that topic for a 
  57. later time).
  58.  
  59.  
  60. **************************************************************************
  61.             WELL DESIGNED CODE IS SLOWER TO MARKET
  62.  
  63. This is why a lot of companies are afraid of OO in general.  But well-designed 
  64. code doesn't rot nearly as fast as "hacked-together" code, so it has a much 
  65. better long-term viability.  It tends to accept changes more gracefully.
  66.  
  67. If you are going to go home to skandahoovia, Ohio as soon as the project is 
  68. done, maybe you don't care about long-term viability.  If you're producing a 
  69. product you'll release a few hundred times before you retire, you care an 
  70. awful lot about it.  Most people fall somewhere in-between.
  71.  
  72. WRT C:
  73.  you can do really cool stuff, in terms of clarity, usefulness, and 
  74. reusability (I've seen it done).  But like building good classes, you have to 
  75. stop and think it out well first.
  76.  
  77. **************************************************************************
  78.     OVERDESIGNED CODE RARELY MAKES IT TO THE MARKET AT ALL
  79.  
  80. This is the problem with OO newbies (I was one, and almost failed this way, 
  81. too).  It's called Analysis-Paralysis.  It's what happens when you think you 
  82. have to know it all before you start. 
  83.  
  84. Try this on for size:
  85.         FLEXIBILITY + UTILITY = COMPLEXITY
  86.  
  87. If you design code well, it is more complex.  It has greater utility and 
  88. flexibility than code written precisely to a spec.  It takes longer to 
  89. conceive, and has a much longer lifespan.
  90.  
  91. WRT C++: 
  92.  
  93. A very flexibile and broad language takes longer to learn. C++ offers more 
  94. choices than any other language I've ever learned (but I've only learned a 
  95. few).  I know that a lot of people don't think that some of those options 
  96. should be offered (non-oo, a goto keyword, etc), but you aren't forced to use 
  97. them.
  98.  
  99. If you think that you have to master C++ before you start, you're not only 
  100. fooling yourself, you're wasting your bosses' money.  
  101.  
  102. You can't be an expert until you've made all of the mistakes.  But you can 
  103. produce working software along the way.
  104.  
  105. You can, then, fail to follow the incremental and iterative model, and try to 
  106. do it all at once. I'll read about you on the front cover of Computer World.  
  107. It will be "ANOTHER OO PROJECT BITES THE DUST -- USE COBOL JUST LIKE THE OLD 
  108. DAYS".  
  109.  
  110.  
  111.  
  112. Finally this:
  113.  
  114. This is why so much bad code is successful: it actually made it to the market, 
  115. and the marketing and sales guys earned it an installed base.  The best, or 
  116. best-designed, products are seldom the leaders.  It has much more to do with 
  117. timing and marketing.
  118.  
  119. Certainly, at some point, too many choices are overwhelming to any individual.  
  120. That's why a lot of people still prefer to use proprietary software on 
  121. proprietary architectures. At least it all comes in a simple bundle and they 
  122. don't have to spend time researching their options.  This isn't stupid and 
  123. wrong -- it's a choice.
  124.  
  125. Likewise, my use of C++ doesn't affect you at all.  You can use Modula-3 or 
  126. Smalltalk.  There's plenty of work for all of us.  Some of the people I 
  127. respect very much use COBOL still, and they have as much backlog as I do.
  128.  
  129. "Can't we all just be friends" :-)
  130.  
  131.  
  132. ******************************************************************************
  133. * Tim Ottinger, Sr Tech                       tottinge@csci.csc.com *
  134. * CSC Communications Industry Services                   217-351-8508x2420 *
  135. * TRIS Division -- Cellular Billing and Support                Fax 217-351-2640 *
  136. ******************************************************************************
  137. * Requirements have always been the least stable part of any project I have  *
  138. * worked upon.                            -- Robert Martin via Usenet 12/02/95 *
  139. ******************************************************************************
  140.